package cn.neusoft.controller;

import cn.neusoft.page.PageBean;
import cn.neusoft.pojo.Emp;
import cn.neusoft.query.EmpQuery;
import cn.neusoft.service.impl.EmpService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController   //  @Controller + @ResponseBody
@RequestMapping("/emp")
@Api(value = "员工的API",description="员工相关的CRUD功能")
public class EmpController {

//    @RequestMapping("/add")   //   /emp/add
//    public String add(String ename,Integer age){
//        System.out.println("姓名："+ename+" 年龄："+age);
//        return "add-"+ename+"--success";
//    }

    //http://localhost:8080/emp/add?empno=1115&ename=jack&job=%E4%BC%9A%E8%AE%A1&hiredate=2020-03-22
//    @RequestMapping("/add")   //   /emp/add
//    public Emp add(Emp emp){
//        System.out.println(emp);
//        return emp;
//    }

//    //请求参数为json
//    @RequestMapping("/add")   //   /emp/add
//    public Emp add(@RequestBody Emp emp){
//        System.out.println(emp);
//        return emp;
//    }

    /*
    http://localhost:8080/emp/del?empno=1115
    http://localhost:8080/emp/del/1115
     */
//    @RequestMapping("/del/{empno}")
//    public String del(@PathVariable("empno") Integer empno){
//        System.out.println("员工编号："+empno);
//        return "success";
//    }

    @Autowired
    EmpService empService;

    /**
     * restful风格
     * @param emp
     * @return
     */
    @ApiOperation(value = "添加员工信息" )
    @PostMapping   // post +  /emp
    public String add(@RequestBody Emp emp){
       return empService.add(emp);
    }

    @ApiOperation(value = "修改员工信息" )
    @PutMapping   // put +  /emp
    public String update(@RequestBody Emp emp){
       return empService.update(emp);
    }

    @ApiOperation(value = "删除员工信息" )
    @DeleteMapping("/{empno}")   // delete + /emp/1115
    public String del(@PathVariable("empno") Integer empno){
        return empService.del(empno);
    }

    @ApiOperation(value = "根据员工编号查询" )
    @GetMapping("/{empno}")      //  get + /emp/1115
    public Emp getById(@PathVariable("empno") Integer empno){
        return empService.getById(empno);
    }

    @ApiOperation(value = "查询所有员工信息" )
    @GetMapping("/all")    //   get  +  /emp/all
    public List<Emp> getAll(){
        return empService.getAll();
    }

    @ApiOperation(value = "分页查询员工信息" )
    @PostMapping("/page")
    public PageBean<Emp> getByPage(@RequestBody EmpQuery empQuery){
       return empService.getByPage(empQuery);
    }
}
